package com.example.demo.leetcode.level2;

/**
 * 编写一个函数来查找字符串数组中的最长公共前缀。
 *
 * 如果不存在公共前缀，返回空字符串 ""。
 *
 *  
 *
 * 示例 1：
 *
 * 输入：strs = ["flower","flow","flight"]
 * 输出："fl"
 * 示例 2：
 *
 * 输入：strs = ["dog","racecar","car"]
 * 输出：""
 * 解释：输入不存在公共前缀。
 *

 *
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode.cn/problems/longest-common-prefix
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 */
public class 最长公共前缀 {


    public static String longestCommonPrefix(String[] strs) {

        int maxlength = 0;
        int maxIdx =0;


        for(int i =0;i<strs.length;i++){
            if(strs[i].equals("")){
                return "";
            }
        }

        for(int i =0;i<strs.length;i++){
            if(maxlength < strs[i].length()){
                maxlength = strs[i].length();
                maxIdx = i;
            }
        }

        int prefix = 0;

        for(int i =0;i<maxlength;i++){
            boolean equals = true;
            char ch = strs[maxIdx].charAt(i);
            for(int j=0;j<strs.length;j++){

                if(strs[j].length() <= i){
                    equals = false;
                    break;
                }
                if(ch == strs[j].charAt(i)){
                    continue;
                }else{
                   equals = false;
                   break;
                }
            }
            if(equals){
                prefix++;
            }else{
                break;
            }
        }
        if(prefix > 0){
            return strs[maxIdx].substring(0,prefix);
        }else{
            return "";
        }

    }

    public static void main(String[] args) {
        String[] strs = {"c","c"};
        String s = longestCommonPrefix(strs);
        System.out.println(s);
    }

}
